package com.example.androidthreadtest;

import android.app.AlarmManager;
import android.app.Notification;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.SystemClock;
import android.util.Log;

import java.util.Date;

/**
 * 作者： andli
 * 时间： 2017/11/2 16:50
 * 描述： 后台服务
 */
public class BackService extends Service {

    @Override
    public void onCreate() {
        super.onCreate();

        // 通知栏初始化
        Notification noti = new Notification(R.drawable.ic_launcher,"我是通知!",System.currentTimeMillis());
        Intent notiIntent = new Intent(this,MainActivity.class);
        PendingIntent pendIntent = PendingIntent.getActivity(this,0,notiIntent,0);
        noti.setLatestEventInfo(this,"我是一个前台服务","杀不死，杀不死",pendIntent);

        // 创建前台服务
        // startForeground(1,noti); // 有通知栏
        startForeground(1,new Notification()); // 无通知栏（Android4.3以下）
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        Log.i("andli", "执行：" + new Date().toString());

        /**
         * 锁屏：亮屏-->执行
         * 锁屏：黑屏-->不执行（Android6.0）
         * 锁屏：黑屏-->执行  （Android4.4.2）
         */

        // 设置定时（多长时间执行一次）
        AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
        int anHour = 60 * 60 * 1000; // 1小时
        anHour = 15 * 1000; // 30s
        anHour = 5 * 1000;  // 5s
        long triggerAtTime = SystemClock.elapsedRealtime() + anHour;

        Intent i = new Intent(this, AlarmReceiver.class);
        PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
        // 参数一：定时类型
        // 参数二：定时时间
        // 参数三：发送广播
        manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi);

        return super.onStartCommand(intent, flags, startId);
    }

}
